//package com.manpower.configuraion;
//
//import com.fasterxml.jackson.core.JsonParser;
//import com.fasterxml.jackson.databind.DeserializationFeature;
//import com.fasterxml.jackson.databind.ObjectMapper;
//import com.fasterxml.jackson.databind.module.SimpleModule;
//import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.core.env.Environment;
//import org.springframework.http.MediaType;
//import org.springframework.http.converter.HttpMessageConverter;
//import org.springframework.http.converter.StringHttpMessageConverter;
//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
//import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
//import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
//
//import java.nio.charset.Charset;
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.List;
//
//@Configuration
//public class WebMvcConfig extends WebMvcConfigurationSupport {
//
//	@Autowired
//	private Environment env;
//
//	@Bean
//	public HttpMessageConverter<String> responseBodyConverter() {
//		return new StringHttpMessageConverter(Charset.forName("UTF-8"));
//	}
//
//	@Override
//	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//		converters.add(responseBodyConverter());
//		converters.add(jackson2HttpMessageConverter());
//		addDefaultHttpMessageConverters(converters);
//	}
//
//	@Override
//	public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
//		configurer.favorPathExtension(false);
//	}
//
//	private MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() {
//		MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
//		ObjectMapper mapper = new ObjectMapper();
//
//		// 日期格式转换
//		mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//		mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
//
//		// Long类型转String类型
//		SimpleModule simpleModule = new SimpleModule();
//		simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
//		simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
//		mapper.registerModule(simpleModule);
//		// 包含反斜杠的特殊字符处理，如 "\n","\r" 等
//		mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
//		converter.setObjectMapper(mapper);
//
//		// 设置返回媒体类型，避免IE出现下载提示
//		List<MediaType> supportedMediaTypes = new ArrayList<MediaType>();
//		MediaType json_media = new MediaType(MediaType.APPLICATION_JSON, Charset.forName("UTF-8"));
//		supportedMediaTypes.add(json_media);
//		MediaType text_html_media = new MediaType(MediaType.TEXT_HTML, Charset.forName("UTF-8"));
//		supportedMediaTypes.add(text_html_media);
//		converter.setSupportedMediaTypes(supportedMediaTypes);
//
//		return converter;
//	}
//
//
//}
